package com.cskaoyan.javase.basic._3operator;

/**
 * 三目运算符:使用频率不高,但是有很独特的用途,场景,还是很有必要学习的
 * 语法:
 *      (条件表达式) ? 表达式1 : 表达式2;
 *      条件表达式的结果是true或者false,如果是true执行表达式1,如果是false执行表达式2
 *      所以三目运算符组成的表达式,一定会执行某个表达式,一定有一个结果
 *      这是三目运算符最大的最大特点
 *
 * 三目运算符的优缺点:
 *      优点: 三目运算符执行效率高,代码比较简洁,推荐使用
 *      缺点: 过于简单的三目运算符,或者嵌套的三目运算符,比较难以读懂,代码可读性会很差.
 *            三目运算符必须要求得出一个结果,但是如果要求的结果是一个语句,就不能使用三目运算符了
 *
 *      if...else在实际使用中,可以完全替代三目运算符的功能,而且还可以做到三目运算符不能做的事情
 *      实际开发中,能使用三目运算符优先考虑三目运算符,不能用的时候再考虑if..else
 *
 * @since 16:35
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo5 {
    public static void main(String[] args) {
        int num1 = 999;
        int num2 = 20;
        // 求两个数的最大值
        int max = (num1 > num2) ? num1 : num2;
        System.out.println(max);

        int num3 = 99999;
        // 求三个数的最大值
        int max2 = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);
        System.out.println(max2);

        // 三目运算符必须有结果,不能写输出语句,因为输出语句没有结果
        // (num1 > num2)? sout
        if (num1 > num2) {
            System.out.println("num1是最大值:" + num1);
        } else {
            System.out.println("num2是最大值:" + num2);

        }
    }
}
